from tkinter import *
from tkinter import messagebox

#定义类继承于画纸对象
class Application(Frame):
    '''经典的GUI程序类的写法'''
    def __init__(self,master=None):# master模板容器，画纸放到哪
        # 继承方法，父类的重新定义
        super().__init__(master) # 定义属性
        self.master = master
        self.pack() # 画纸几何布局，默认摆放
        self.CreatWidget() # 创建示例对象时，自动进行调用

    def CreatWidget(self):
        '''创建组件'''
        # NE 文字在按钮上的方位，东北角
        self.btn01 = Button(root,text='登录',width=6,height=3,anchor=NE,command=self.login)
        self.btn01.pack()

        global photo
        photo = PhotoImage(file="C:\\Users\\vio\\Downloads\\Over 4M Pixel jpeg & png_Notebook_PC_1.png")
        # 直接把按钮放在画板root上
        self.btn02 = Button(root,image=photo,command=self.login)
        self.btn02.pack()
        # 也可以设置按钮禁用，比如会员可以点击，非会员禁用
        self.btn02.config(state='disable')  # 设置按钮禁用

    def login(self):
        messagebox.showinfo('学习系统', '登录成功，开始学习')

if __name__ == '__main__': # 程序入口，里面的本文件内调用，其他程序访问不到
    root = Tk() # 创建主窗口
    root.title('标题-经典GUI程序类的测试')
    root.geometry('800x500+900+300')

    # 创建画纸对象放到root画板上
    Application(master=root)
    root.mainloop()  # 消息循环
